package com.bsoft.gol.hcs.task.bean.response;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * Created by ChenJij on 2019/4/21.
 */
@XmlRootElement(name = "Data")
public class HospitalExamReportListResponse {
    private long total;
    private List<HospitalExamReport> list;


    public static class HospitalExamReport {
        /**
         * 检查报告id
         */
        private String examReportId;
        /**
         * 业务系统患者档案id
         */
        private String sourcePatientId;
        /**
         * 业务类型代码 1门诊、2住院
         */
        private String businessType;
        /**
         * 业务记录号
         */
        private String businessId;
        /**
         * 患者姓名
         */
        private String name;
        /**
         * 身份证件号码
         */
        private String idCard;
        /**
         * 患者性别代码
         */
        private String sex;
        /**
         * 就诊流水号
         */
        private String visitId;
        /**
         * 患者类型代码
         */
        private String patientType;
        /**
         * 业务类型代码 1门诊、2住院
         */
        private String busType;
        /**
         * 门（急）诊号
         */
        private String clinicId;
        /**
         * 住院号
         */
        private String hospizationId;
        /**
         * 患者年龄
         */
        private String age;
        /**
         * 检查类别代码
         */
        private String examTypeCode;
        /**
         * 检查类别名称
         */
        private String examTypeName;
        /**
         * 检查申请单编号
         */
        private String requestId;
        /**
         * 报告机构名称
         */
        private String reportOrganizationName;
        /**
         * 检查报告机构
         */
        private String reportOrganization;
        /**
         * 报告单编号
         */
        private String reportId;
        /**
         * 检查报告科室代码
         */
        private String reportDept;
        /**
         * 检查报告科室名称
         */
        private String inspectDepartmentName;
        /**
         * 检查方法名称
         */
        private String examMethodName;
        /**
         * 影像号
         */
        private String studyId;
        /**
         * 放射DICOM影像webview的URL
         */
        private String webPacsUrl;
        /**
         * 检查项目代码
         */
        private String examItemCode;
        /**
         * 检查项目名称集
         */
        private String examItemName;
        /**
         * 检查部位代码
         */
        private String examPartCode;
        /**
         * 检查部位名称
         */
        private String examPartName;
        /**
         * 检查描述
         */
        private String examDescript;
        /**
         * 检查结论
         */
        private String examDiagnosis;
        /**
         * 医生建议
         */
        private String suggestion;
        /**
         * 检查技师代码
         */
        private String technician;
        /**
         * 检查技师签名
         */
        private String executeDoctorCode;
        /**
         * 检查技师姓名
         */
        private String executeDoctor;
        /**
         * 检查时间
         */
        private String executeDate;
        /**
         * 报告医生代码
         */
        private String reportDoctorCode;
        /**
         * 报告医生名称
         */
        private String reportDoctorName;
        /**
         * 报告时间
         */
        private String reportDate;
        /**
         * 审核医生代码
         */
        private String reviewDoctorCode;
        /**
         * 审核医生名称
         */
        private String reviewDoctor;
        /**
         * 审核时间
         */
        private String reviewDate;
        /**
         * 检查报告备注
         */
        private String reportMark;
        /**
         * 报告打印标志代码
         */
        private String reportPrintFlag;
        /**
         * 检查设备名称
         */
        private String examinationDevice;
        /**
         * 图文报告文件格式
         */
        private String fileType;
        /**
         * 图文报告文件地址
         */
        private String fileName;
        /**
         * 阴阳性  1阳性 0阴性
         */
        private String malignant;

        /**
         * 删除标志
         */
        private String deleteFlag;

        private List<ExamImage> examList;

        public String getExamReportId() {
            return examReportId;
        }

        public void setExamReportId(String examReportId) {
            this.examReportId = examReportId;
        }
        @XmlElement(name = "SourcePatientId")
        public String getSourcePatientId() {
            return sourcePatientId;
        }

        public void setSourcePatientId(String sourcePatientId) {
            this.sourcePatientId = sourcePatientId;
        }
        @XmlElement(name = "BusType")
        public String getBusinessType() {
            return businessType;
        }

        public void setBusinessType(String businessType) {
            this.businessType = businessType;
        }

        public String getBusinessId() {
            return businessId;
        }

        public void setBusinessId(String businessId) {
            this.businessId = businessId;
        }
        @XmlElement(name = "Name")
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
        @XmlElement(name = "IdCard")
        public String getIdCard() {
            return idCard;
        }

        public void setIdCard(String idCard) {
            this.idCard = idCard;
        }
        @XmlElement(name = "Sex")
        public String getSex() {
            return sex;
        }

        public void setSex(String sex) {
            this.sex = sex;
        }
        @XmlElement(name = "VisitId")
        public String getVisitId() {
            return visitId;
        }
        public void setVisitId(String visitId) {
            this.visitId = visitId;
        }
        @XmlElement(name = "PatientType")
        public String getPatientType() {
            return patientType;
        }

        public void setPatientType(String patientType) {
            this.patientType = patientType;
        }
        @XmlElement(name = "BusType")
        public String getBusType() {
            return busType;
        }

        public void setBusType(String busType) {
            this.busType = busType;
        }
        @XmlElement(name = "ClinicId")
        public String getClinicId() {
            return clinicId;
        }

        public void setClinicId(String clinicId) {
            this.clinicId = clinicId;
        }
        @XmlElement(name = "HospizationId")
        public String getHospizationId() {
            return hospizationId;
        }

        public void setHospizationId(String hospizationId) {
            this.hospizationId = hospizationId;
        }
        @XmlElement(name = "Age")
        public String getAge() {
            return age;
        }

        public void setAge(String age) {
            this.age = age;
        }
        @XmlElement(name = "ExamTypeCode")
        public String getExamTypeCode() {
            return examTypeCode;
        }

        public void setExamTypeCode(String examTypeCode) {
            this.examTypeCode = examTypeCode;
        }
        @XmlElement(name = "ExamTypeName")
        public String getExamTypeName() {
            return examTypeName;
        }

        public void setExamTypeName(String examTypeName) {
            this.examTypeName = examTypeName;
        }
        @XmlElement(name = "RequestId")
        public String getRequestId() {
            return requestId;
        }

        public void setRequestId(String requestId) {
            this.requestId = requestId;
        }
        @XmlElement(name = "ReportOrganizationName")
        public String getReportOrganizationName() {
            return reportOrganizationName;
        }

        public void setReportOrganizationName(String reportOrganizationName) {
            this.reportOrganizationName = reportOrganizationName;
        }
        @XmlElement(name = "VisitOrganization")
        public String getReportOrganization() {
            return reportOrganization;
        }

        public void setReportOrganization(String reportOrganization) {
            this.reportOrganization = reportOrganization;
        }
        @XmlElement(name = "ReportId")
        public String getReportId() {
            return reportId;
        }

        public void setReportId(String reportId) {
            this.reportId = reportId;
        }
        @XmlElement(name = "ReportDept")
        public String getReportDept() {
            return reportDept;
        }

        public void setReportDept(String reportDept) {
            this.reportDept = reportDept;
        }
        @XmlElement(name = "InspectDepartmentName")
        public String getInspectDepartmentName() {
            return inspectDepartmentName;
        }

        public void setInspectDepartmentName(String inspectDepartmentName) {
            this.inspectDepartmentName = inspectDepartmentName;
        }
        @XmlElement(name = "ExamMethodName")
        public String getExamMethodName() {
            return examMethodName;
        }

        public void setExamMethodName(String examMethodName) {
            this.examMethodName = examMethodName;
        }
        @XmlElement(name = "StudyId")
        public String getStudyId() {
            return studyId;
        }

        public void setStudyId(String studyId) {
            this.studyId = studyId;
        }
        @XmlElement(name = "WebPACSURL")
        public String getWebPacsUrl() {
            return webPacsUrl;
        }

        public void setWebPacsUrl(String webPacsUrl) {
            this.webPacsUrl = webPacsUrl;
        }
        @XmlElement(name = "ExamItemCode")
        public String getExamItemCode() {
            return examItemCode;
        }

        public void setExamItemCode(String examItemCode) {
            this.examItemCode = examItemCode;
        }
        @XmlElement(name = "ExamItemName")
        public String getExamItemName() {
            return examItemName;
        }

        public void setExamItemName(String examItemName) {
            this.examItemName = examItemName;
        }
        @XmlElement(name = "ExamPartCode")
        public String getExamPartCode() {
            return examPartCode;
        }

        public void setExamPartCode(String examPartCode) {
            this.examPartCode = examPartCode;
        }
        @XmlElement(name = "ExamPartName")
        public String getExamPartName() {
            return examPartName;
        }

        public void setExamPartName(String examPartName) {
            this.examPartName = examPartName;
        }
        @XmlElement(name = "ExamDescript")
        public String getExamDescript() {
            return examDescript;
        }

        public void setExamDescript(String examDescript) {
            this.examDescript = examDescript;
        }
        @XmlElement(name = "ExamDiagnosis")
        public String getExamDiagnosis() {
            return examDiagnosis;
        }

        public void setExamDiagnosis(String examDiagnosis) {
            this.examDiagnosis = examDiagnosis;
        }
        @XmlElement(name = "Suggestion")
        public String getSuggestion() {
            return suggestion;
        }

        public void setSuggestion(String suggestion) {
            this.suggestion = suggestion;
        }
        @XmlElement(name = "Technician")
        public String getTechnician() {
            return technician;
        }

        public void setTechnician(String technician) {
            this.technician = technician;
        }
        @XmlElement(name = "ExecuteDoctorCode")
        public String getExecuteDoctorCode() {
            return executeDoctorCode;
        }

        public void setExecuteDoctorCode(String executeDoctorCode) {
            this.executeDoctorCode = executeDoctorCode;
        }
        @XmlElement(name = "ExecuteDoctor")
        public String getExecuteDoctor() {
            return executeDoctor;
        }

        public void setExecuteDoctor(String executeDoctor) {
            this.executeDoctor = executeDoctor;
        }
        @XmlElement(name = "ExecuteDateTime")
        public String getExecuteDate() {
            return executeDate;
        }

        public void setExecuteDate(String executeDate) {
            this.executeDate = executeDate;
        }
        @XmlElement(name = "ReportDoctorCode")
        public String getReportDoctorCode() {
            return reportDoctorCode;
        }

        public void setReportDoctorCode(String reportDoctorCode) {
            this.reportDoctorCode = reportDoctorCode;
        }
        @XmlElement(name = "ReportDoctor")
        public String getReportDoctorName() {
            return reportDoctorName;
        }

        public void setReportDoctorName(String reportDoctorName) {
            this.reportDoctorName = reportDoctorName;
        }
        @XmlElement(name = "ReportDateTime")
        public String getReportDate() {
            return reportDate;
        }

        public void setReportDate(String reportDat) {
            this.reportDate= reportDate;
        }

        @XmlElement(name = "ReviewDoctorCode")
        public String getReviewDoctorCode() {
            return reviewDoctorCode;
        }

        public void setReviewDoctorCode(String reviewDoctorCode) {
            this.reviewDoctorCode = reviewDoctorCode;
        }
        @XmlElement(name = "ReviewDoctor")
        public String getReviewDoctor() {
            return reviewDoctor;
        }

        public void setReviewDoctor(String reviewDoctor) {
            this.reviewDoctor = reviewDoctor;
        }
        @XmlElement(name = "ReviewDateTime")
        public String getReviewDate() {
            return reviewDate;
        }

        public void setReviewDate(String reviewDate) {
            this.reviewDate = reviewDate;
        }
        @XmlElement(name = "ReportMark")
        public String getReportMark() {
            return reportMark;
        }

        public void setReportMark(String reportMark) {
            this.reportMark = reportMark;
        }
        @XmlElement(name = "ReportPrintFlag")
        public String getReportPrintFlag() {
            return reportPrintFlag;
        }

        public void setReportPrintFlag(String reportPrintFlag) {
            this.reportPrintFlag = reportPrintFlag;
        }
        @XmlElement(name = "ExaminationDevice")
        public String getExaminationDevice() {
            return examinationDevice;
        }

        public void setExaminationDevice(String examinationDevice) {
            this.examinationDevice = examinationDevice;
        }
        @XmlElement(name = "FileType")
        public String getFileType() {
            return fileType;
        }

        public void setFileType(String fileType) {
            this.fileType = fileType;
        }
        @XmlElement(name = "FileName")
        public String getFileName() {
            return fileName;
        }

        public void setFileName(String fileName) {
            this.fileName = fileName;
        }
        @XmlElement(name = "Malignant")
        public String getMalignant() {
            return malignant;
        }

        public void setMalignant(String malignant) {
            this.malignant = malignant;
        }

        public String getDeleteFlag() {
            return deleteFlag;
        }

        public void setDeleteFlag(String deleteFlag) {
            this.deleteFlag = deleteFlag;
        }

        @XmlElementWrapper(name = "Images")
        @XmlElement(name = "Image")
        public List<ExamImage> getExamList() {
            return examList;
        }

        public void setExamList(List<ExamImage> examList) {
            this.examList = examList;
        }

        public static class  ExamImage{
            /**
             * 图像编号
             */
            private String imageNo;
            /**
             * 图像说明
             */
            private String imageNotes;
            /**
             * 显示顺序
             */
            private Integer displayOrder;
            /**
             * 图像格式
             */
            private String imageFormat;
            /**
             * 图像规格
             */
            private String imageSize;
            /**
             * 数据存储方式
             */
            private String dataStorageMode;
            /**
             * 图像文件存储路径
             */
            private String imageLocalUrl;
            /**
             * 图像内容
             */
            private String imageData;
            @XmlElement(name = "ImageNo")
            public String getImageNo() {
                return imageNo;
            }

            public void setImageNo(String imageNo) {
                this.imageNo = imageNo;
            }
            @XmlElement(name = "ImageNotes")
            public String getImageNotes() {
                return imageNotes;
            }

            public void setImageNotes(String imageNotes) {
                this.imageNotes = imageNotes;
            }
            @XmlElement(name = "DisplayOrder")
            public Integer getDisplayOrder() {
                return displayOrder;
            }

            public void setDisplayOrder(Integer displayOrder) {
                this.displayOrder = displayOrder;
            }
            @XmlElement(name = "ImageFormat")
            public String getImageFormat() {
                return imageFormat;
            }

            public void setImageFormat(String imageFormat) {
                this.imageFormat = imageFormat;
            }
            @XmlElement(name = "ImageSize")
            public String getImageSize() {
                return imageSize;
            }

            public void setImageSize(String imageSize) {
                this.imageSize = imageSize;
            }
            @XmlElement(name = "DataStorageMode")
            public String getDataStorageMode() {
                return dataStorageMode;
            }

            public void setDataStorageMode(String dataStorageMode) {
                this.dataStorageMode = dataStorageMode;
            }
            @XmlElement(name = "ImageLocalURL")
            public String getImageLocalUrl() {
                return imageLocalUrl;
            }

            public void setImageLocalUrl(String imageLocalUrl) {
                this.imageLocalUrl = imageLocalUrl;
            }
            @XmlElement(name = "ImageData")
            public String getImageData() {
                return imageData;
            }

            public void setImageData(String imageData) {
                this.imageData = imageData;
            }
        }
    }

    @XmlElement(name = "Total")
    public long getTotal() {
        return total;
    }

    public void setTotal(long total) {
        this.total = total;
    }

    @XmlElementWrapper(name = "Reports")
    @XmlElement(name = "Report")
    public List<HospitalExamReport> getList() {
        return list;
    }

    public void setList(List<HospitalExamReport> list) {
        this.list = list;
    }
}